package com.itheima;

import java.util.HashMap;
import java.util.Map;

/**
 * 案例-投票统计
 */
public class MapPractice {
    public static void main(String[] args) {
        Map<String,String> data = new HashMap<>();
        data.put("张三","A");
        data.put("李四","B");
        data.put("王五","C");
        data.put("赵六","D");
        data.put("钱七","A");
        data.put("孙八","B");
        data.put("周九","C");
        data.put("吴十","D");
        data.put("小王","A");
        data.put("小李","B");
        data.put("小赵","C");
        data.put("小孙","D");
        data.put("小周","A");
        data.put("小吴","B");
        data.put("小周1","C");
        data.put("小周2","D");
        data.put("小周3","A");
        data.put("小周4","B");
        data.put("小周5","C");
        //调用方法统计
        count(data);

    }
    public static void count(Map<String,String> data){
        /**
         * 1.创建一个新的Map集合，用来存储统计投票结果
         * 2.遍历data集合（key-->value）
         * 3.将value值拿出来，将value当作key存储到新的集合中，
         * 4.如果A已经存在了，那么将A对应的值+1
         * 5.如果A不存在，那么将A---1，存储到新的map集合中
         * 6.遍历新map集合,打印结果
         */
        Map<String,Integer> resultMap = new HashMap<>();

        data.forEach((k,v)->{
//        ----3.将value值拿出来，将value当作key存储到新的集合中，
//        ----4.如果A已经存在了，那么将A对应的值+1
//        ----5.如果A不存在，那么将A---1，存储到新的map集合中
            //判断v是否已经在resultMap中存在了
           boolean containsKey= resultMap.containsKey(v);
           if(containsKey){//存在
               //将老的值取出来+1，重新存进去
               Integer oldCount = resultMap.get(v);
               resultMap.put(v,oldCount+1);
           }else{
               //不存在
               resultMap.put(v,1);
           }
        });
        //6.遍历新map集合,打印结果
        resultMap.forEach((k,v)->{
            System.out.println(k+"-->"+v);
        });
    }
}
